class_name ArrayUtils
extends Node

static func find_intersection(array1: Array[Vector2i], array2: Array[Vector2i]) -> Array[Vector2i]:
	# 将 array2 转换为 Set 以提高查找效率（O(1) 查询）
	var set2 := {} as Dictionary
	for vec in array2:
		set2[vec] = true
	# 过滤 array1 中存在于 set2 的元素
	return array1.filter(func(vec): return set2.has(vec))

static func find_difference(arr1: Array[Vector2i], arr2: Array[Vector2i]) -> Array[Vector2i]:
	# 将 arr2 转换为 Dictionary 以提高查询效率（O(1)）
	var set2 := {} as Dictionary
	for vec in arr2:
		set2[vec] = true
	# 过滤 arr1 中不存在于 set2 的元素
	return arr1.filter(func(vec): return not set2.has(vec))
